package com.ethink.warehouse.api.enums;

import com.ethink.framework.common.constant.ColumnEnum;


/**
 * 仓库入库单 枚举 入库状态: 1-未开始处理(new)|2-仓库接单(accept)|3-部分收货完成(part_in)|4-收货完成(full_in)|5-异常(exception)|6-取消(cancel)|7-关闭(close)|8-拒单(reject)|8-取消失败(cancel_fail)
 *
 * @author default
 * @date 2022-12-05
 */
public enum StockInOrderInStockStatusEnum implements ColumnEnum {

    /** 未开始处理 */
    NEW(1, "未开始处理"),

    /** 仓库接单 */
    ACCEPT(2, "仓库接单"),

    /** 部分收货完成 */
    PART_IN(3, "部分收货完成"),

    /** 收货完成 */
    FULL_IN(4, "收货完成"),

    /** 异常 */
    EXCEPTION(5, "异常"),

    /** 取消 */
    CANCEL(6, "取消"),

    /** 关闭 */
    CLOSE(7, "关闭"),

    /** 拒单 */
    REJECT(8, "拒单"),

    /** 取消失败 */
    CANCEL_FAIL(8, "取消失败"),

    ;

    /**
     * 枚举int值
     */
    private Integer intValue;

    /**
     * 枚举名称
     */
    private String name;

    /**
     * 构造方法
     *
     * @param intValue
     * @param name
     */
    StockInOrderInStockStatusEnum(Integer intValue, String name) {
        this.intValue = intValue;
        this.name = name;
    }

    /**
     * 枚举int值
     *
     * @return
     */
    @Override
    public Integer getIntValue() {
        return intValue;
    }

    /**
     * 枚举名称
     *
     * @return
     */
    @Override
    public String getName() {
        return name;
    }

    /**
     * 枚举int值获取枚举
     * @param intValue
     * @return
     */
    public static StockInOrderInStockStatusEnum valueOf(Integer intValue) {
        for (StockInOrderInStockStatusEnum value : StockInOrderInStockStatusEnum.values()) {
            if(value.getIntValue().equals(intValue)) {
                return value;
            }
        }
        return null;
    }
}
